package com.zofer.study.linkedlist;

/**
 * 题目：输入一个链表，输出该链表中倒数第k个结点。
 *
 * 思路：两个指针p1,p2，开始都指向头结点
 * 先让p2走k步
 * 然后p1,p2同时向下走
 * 当p2指向null的时候，p1就是倒数第k个节点
 */
public class FindKthToTail {
    public ListNode FindKthToTail(ListNode head,int k) {

        if(head == null || k <= 0){
            return null;
        }
        ListNode pNode = head;
        ListNode qNode = head;

        for(int i = 0;i < k;i++){
            if(pNode == null){
                return null;
            }
            pNode =  pNode.next;
        }

        while(pNode != null){
            pNode = pNode.next;
            qNode = qNode.next;
        }

        return qNode;

    }
}
